home *** CD-ROM | disk | FTP | other *** search
Wrap
RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhSSSSeeeetttt((((3333CCCC++++++++)))) RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhSSSSeeeetttt((((3333CCCC++++++++)))) NNNNaaaammmmeeee RWTValHashSet<T> - Rogue Wave library class SSSSyyyynnnnooooppppssssiiiissss #include <rw/tvhset.h> unsigned hashFun(const T&); RWTValHashSet(hashFun) set; PPPPlllleeeeaaaasssseeee NNNNooootttteeee!!!! IIIIffff yyyyoooouuuu ddddoooo nnnnooootttt hhhhaaaavvvveeee tttthhhheeee SSSSttttaaaannnnddddaaaarrrrdddd CCCC++++++++ LLLLiiiibbbbrrrraaaarrrryyyy,,,, uuuusssseeee tttthhhheeee iiiinnnntttteeeerrrrffffaaaacccceeee ddddeeeessssccccrrrriiiibbbbeeeedddd hhhheeeerrrreeee.... OOOOtttthhhheeeerrrrwwwwiiiisssseeee,,,, uuuusssseeee tttthhhheeee iiiinnnntttteeeerrrrffffaaaacccceeee ttttoooo RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhSSSSeeeetttt described in the Class Reference. DDDDeeeessssccccrrrriiiippppttttiiiioooonnnn RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhSSSSeeeetttt<<<<TTTT>>>> is a derived class of RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhTTTTaaaabbbblllleeee<<<<TTTT>>>> where the iiiinnnnsssseeeerrrrtttt(((()))) function has been overridden to accept only one item of a given value. Hence, each item in the collection will be unique. As with class RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhTTTTaaaabbbblllleeee<<<<TTTT>>>>, you must supply a hashing function to the constructor. The class TTTT must have: well-defined copy semantics (TTTT::::::::TTTT((((ccccoooonnnnsssstttt TTTT&&&&)))) or equivalent); well-defined assignment semantics (TTTT::::::::ooooppppeeeerrrraaaattttoooorrrr====((((ccccoooonnnnsssstttt TTTT&&&&)))) or equivalent); well-defined equality semantics (TTTT::::::::ooooppppeeeerrrraaaattttoooorrrr========((((ccccoooonnnnsssstttt TTTT&&&&))))). PPPPeeeerrrrssssiiiisssstttteeeennnncccceeee None EEEExxxxaaaammmmpppplllleeee This examples exercises a set of RRRRWWWWCCCCSSSSttttrrrriiiinnnnggggs. #include <rw/tvhset.h> #include <rw/cstring.h> #include <rw/rstream.h> main(){ RWTValHashSet<RWCString> set(RWCString::hash); set.insert("one"); set.insert("two"); set.insert("three"); set.insert("one"); // Rejected: already in collection cout << set.entries() << endl; // Prints "3" return 0; } Program output: PPPPaaaaggggeeee 1111 RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhSSSSeeeetttt((((3333CCCC++++++++)))) RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhSSSSeeeetttt((((3333CCCC++++++++)))) 3 PPPPuuuubbbblllliiiicccc MMMMeeeemmmmbbbbeeeerrrr FFFFuuuunnnnccccttttiiiioooonnnnssss RWTValHashSet<T>& UUUUnnnniiiioooonnnn((((const RWTValHashSet<T>& h); Computes the union of self and hhhh, modifying self and returning self. RWTValHashSet<T>& ddddiiiiffffffffeeeerrrreeeennnncccceeee((((const RWTValHashSet<T>& h); Computes the disjunction of self and hhhh, modifying self and returning self. RWTValHashSet<T>& iiiinnnntttteeeerrrrsssseeeeccccttttiiiioooonnnn((((const RWTValHashSet<T>& h); Computes the intersection of self and hhhh, modifying self and returning self. RWTValHashSet<T>& ssssyyyymmmmmmmmeeeettttrrrriiiiccccDDDDiiiiffffffffeeeerrrreeeennnncccceeee((((const RWTValHashSet<T>& h); Computes the symmetric difference between self and hhhh, modifying self and returning self. RWBoolean iiiissssSSSSuuuubbbbsssseeeettttOOOOffff((((const RWTValHashSet<T>& h) const; Returns TTTTRRRRUUUUEEEE if self is a subset of hhhh. RWBoolean iiiissssPPPPrrrrooooppppeeeerrrrSSSSuuuubbbbsssseeeettttOOOOffff((((const RWTValHashSet<T>& h) const; Returns TTTTRRRRUUUUEEEE if self is a proper subset of hhhh. RWBoolean iiiissssEEEEqqqquuuuiiiivvvvaaaalllleeeennnntttt((((const RWTValHashSet<T>& h) const; Returns TTTTRRRRUUUUEEEE if self and hhhh are identical. PPPPaaaaggggeeee 2222 RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhSSSSeeeetttt((((3333CCCC++++++++)))) RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhSSSSeeeetttt((((3333CCCC++++++++)))) void aaaappppppppllllyyyy(void (*applyFun)(T&, void*), void* d); Inherited from class RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhTTTTaaaabbbblllleeee<<<<TTTT>>>>. void cccclllleeeeaaaarrrr(); Inherited from class RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhTTTTaaaabbbblllleeee<<<<TTTT>>>>. RWBoolean ccccoooonnnnttttaaaaiiiinnnnssss(const T& val) const; Inherited from class RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhTTTTaaaabbbblllleeee<<<<TTTT>>>>. size_t eeeennnnttttrrrriiiieeeessss() const; Inherited from class RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhTTTTaaaabbbblllleeee<<<<TTTT>>>>. RWBoolean ffffiiiinnnndddd(const T& target, T& k) const; Inherited from class RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhTTTTaaaabbbblllleeee<<<<TTTT>>>>. void iiiinnnnsssseeeerrrrtttt(const T& val); Redefined from class RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhTTTTaaaabbbblllleeee<<<<TTTT>>>> to allow an object of a given value to be inserted only once. RWBoolean iiiissssEEEEmmmmppppttttyyyy() const; Inherited from class RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhTTTTaaaabbbblllleeee<<<<TTTT>>>>. size_t ooooccccccccuuuurrrrrrrreeeennnncccceeeessssOOOOffff(const T& val) const; Inherited from class RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhTTTTaaaabbbblllleeee<<<<TTTT>>>>. RWBoolean rrrreeeemmmmoooovvvveeee(const T& val); PPPPaaaaggggeeee 3333 RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhSSSSeeeetttt((((3333CCCC++++++++)))) RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhSSSSeeeetttt((((3333CCCC++++++++)))) Inherited from class RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhTTTTaaaabbbblllleeee<<<<TTTT>>>>. size_t rrrreeeemmmmoooovvvveeeeAAAAllllllll(const T& val); Inherited from class RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhTTTTaaaabbbblllleeee<<<<TTTT>>>>. void rrrreeeessssiiiizzzzeeee(size_t N); Inherited from class RRRRWWWWTTTTVVVVaaaallllHHHHaaaasssshhhhTTTTaaaabbbblllleeee<<<<TTTT>>>>. PPPPaaaaggggeeee 4444